module box_param
  use param
  use derived,only:VirtualBox
  implicit none
  
  ! Width of the box in nm
  real(dbl) :: bwidth(3)

  ! Number of channel along the x,y,z directions
  integer :: channel_n(3),channel_tot

  ! Width of the basic cell
  real(dbl) :: cell_width

  ! Determine the boundary condition
  integer :: bound(3)

  ! Width of each channel
  real(dbl) :: ch_width(3)

  ! Volume of the channel
  real(dbl) :: ch_vol(3)

  ! Total volume
  real(dbl) :: total_volume

  ! Mapping function
  integer,pointer,dimension(:,:,:) :: vbox_map

  ! virtual box
  integer :: n_vbox
  type(VirtualBox),pointer,dimension(:) :: vbox

end module box_param
